package com.liyong.pullorder.sdk.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * @author 葡萄味的萝卜
 * @date 2025/10/21 13:01
 *
 * 订单商品项数据传输对象
 *
 * 核心作用：标准化订单商品明细信息
 * 设计目标：支持多商品订单，提供完整的商品信息
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OrderItemDto {
    /**
     * 商品SKU - 标准商品编码
     * 作用：库存管理、商品识别、销售分析
     */
    private String sku;

    /**
     * 商品名称 - 商品展示名称
     * 作用：订单展示、客户服务
     */
    private String productName;

    /**
     * 购买数量 - 正整数
     * 作用：库存扣减、销售统计
     */
    private Integer quantity;

    /**
     * 商品单价 - 单个商品价格
     * 作用：金额计算、价格分析
     */
    private BigDecimal unitPrice;

    /**
     * 商品总价 - 单价 × 数量
     * 作用：金额汇总、财务结算
     */
    private BigDecimal totalPrice;

    /**
     * 商品规格 - 商品规格信息
     * 作用：商品识别、售后服务
     */
    private String specifications;

    /**
     * 扩展字段 - 商品相关扩展信息
     * 作用：保留平台特殊字段，如商品编码、分类等
     */
    private java.util.Map<String, Object> extraFields;
}
